With the rising popularity of cloud computing, remote desktop environments, such as those based on Virtual Desktop Infrastructure (VDI) and Desktop-as-a-Service (DAAS) have become rapidly growing industries. In a conventional VDI or DAAS environment, a user is provisioned a virtual desktop and is allowed to access his or her virtual desktop over a remote network connection, such as a WAN connection. The virtual desktops are typically hosted on servers that reside in a data center of the enterprise (or a third party service provider), and each host server may execute multiple virtual desktops. Users can utilize a client device to remotely log into their individual virtual desktop and all of the application execution takes place on the remote host server which is linked to the local client device over network, using a remote display protocol such as remote desktop protocol (RDP), PC-over-IP (PCoIP) protocol, virtual network computing (VNC) protocol, or the like. Using such a remote desktop protocol, the user can interact with applications of the virtual desktop, which are running on the remote host server, such that only the display (i.e., image data), keyboard, and mouse information is communicated with the local client device. A common implementation of a remote desktop protocol utilizes a server-side encoder to encode the image data prior to transmitting the image data to the client, where a client-side decoder decodes the image data so that it can be displayed on the client device. Frequently, the client-side decoder is a hardware decoder, which can provide power savings and accelerated decoding.
In many ways, VDI and DAAS provide a more centralized and efficient computing environment because each user is able to access his or her individual desktop from any device capable of making a network connection and from virtually any location. All of the user data is stored in the cloud (e.g., in a data center), providing more centralized management and quality of control for the organization that may employ the individual users.
However, a number of difficulties and inefficiencies still remain. One difficulty stems from the need to enable users with access to remote desktops from a variety of devices, such as smartphones, laptops, tablets, and personal computers. In particular, the growing popularity of high-resolution displays on client devices, such as 4K resolution, is creating inefficiencies and difficulties for streaming desktops where the underlying system is not designed for such high-resolution applications. For example, currently, common hardware decoders are designed to decode video with resolution of only up to 1080p. However, the display resolution on a modern client device may be significantly higher than 1080p, which can create numerous issues. For example, using such a hardware decoder for streaming a graphical user interface to a high-resolution client device may result in the graphical user interface not being able to leverage the full capabilities of the client device display. What is needed is a more efficient way for handling remote desktop streaming to client devices.